#pragma once

#include "imtPublic.h"

namespace iMate {

	class Role;
	class Outter;
	class GameScene;
	class Inputer;

	class _iMateExport Player : public NormalAlloc
	{
	public:
		Player();
		virtual ~Player();

		virtual bool initialize(Inputer* inputer);
		virtual void update(Real timeElapsed);

		virtual void attachScene(GameScene* scene);
		virtual void dettachScene(GameScene* scene);

		virtual void setRole(Role* role);

	protected:
		virtual Outter* createOutter();

	protected:
		GameScene*   mScene;
		Role*        mRole;
		Outter*      mOutter;
	};

}//iMate